<?php
	header("Content-type:image/png");		//自定义报头
	$img=imagecreatetruecolor(70,22);		//创建背景画布
	$black=imagecolorallocate($img,0xcc,0xcc,0xcc);		//定义黑色
	imagefill($img,0,0,$black);		//填充背景为黑色
	$img_w=70;		//初始化验证码图片的宽
	$img_h=22;		//初始化验证码图片的高
	$char_len = 4;	//初始化码值的长度
	$font=5;		//初始化验证码字体大小
	for($i=0;$i<50;$i++){	
		$color=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
		imagesetpixel($img,rand(0,70),rand(0,22),$color);	//干扰像素点
	}	
	for($i=0;$i<10;$i++){	
		$color=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
		imageline($img,rand(0,70),rand(0,22),rand(0,70),rand(0,22),$color);//干扰线
	}	
	
	//生成码值数组,不需要0，避免与字母o冲突
	$char = array_merge(range('A','Z'), range('a','z'),range(1, 9));
	
	//随机获取$char_len个码值的键
	$rand_keys = array_rand($char,$char_len);
	
	//打乱随机获取的码值键的数组
	shuffle($rand_keys);
	
	//根据键获取对应的码值，并拼接成字符串
	$code = '';
	foreach($rand_keys as $key) {
		$code .= $char[$key];
	}
	//设置session储存验证码
	@session_start();
	$_SESSION['captcha_code'] = $code;
//设定字符串颜色
$str_color = imageColorAllocate($img, mt_rand(0, 100), mt_rand(0, 100),mt_rand(0, 100));
//设定字符串位置
$font_w = imageFontWidth($font);  //字体宽
$font_h = imageFontHeight($font); //字体高
$str_w = $font_w * $char_len;     //字符串宽
imageString($img, $font, ($img_w-$str_w)/2, ($img_h-$font_h)/2, $code, $str_color);

	imagepng($img);		//输出图像
	imagedestroy($img);		//清除图像释放资源


?>